package evemanutool.utils.calc;
import java.util.Collection;
import java.util.Map;
import com.beimin.eveapi.corporation.member.security.ApiSecurityMember;
import com.beimin.eveapi.corporation.member.security.ApiSecurityRole;
import com.beimin.eveapi.corporation.member.tracking.ApiMember;
import com.beimin.eveapi.corporation.sheet.CorpSheetResponse;
import com.beimin.eveapi.shared.accountbalance.EveAccountBalance;
import evemanutool.constants.DBConstants;
import evemanutool.data.display.Asset;
import evemanutool.data.display.MarketOrder;
import evemanutool.prefs.Preferences;
import evemanutool.utils.databases.PriceDB;
public class ValueCalculator implements DBConstants {
public static double getCorpMemberAccessValue(Collection<Asset> treeAssets, ApiSecurityMember aSM,
ApiMember aM, CorpSheetResponse cSR, Preferences prefs, PriceDB pdb, Map<Integer, EveAccountBalance> accountMap) {
double val = getAssetValue(prefs, pdb, AssetCalculator.getAccessibleAssets(treeAssets, aSM, aM, cSR));
//Check for each division access mask.
int index;
for (index = 0; index < ROLE_ACCOUNTTAKE_ACCESS_MASKS.length; index++) {
for (ApiSecurityRole aSR : aSM.getRoles()) {
//If the character has a matching role or is a director.
if (aSR.getRoleID() == ROLE_ACCOUNTTAKE_ACCESS_MASKS[index] ||
aSR.getRoleID() == ROLE_DIRECTOR_MASK) {
val += accountMap.get(DIVISION_KEYS[index]).getBalance();
}
}
}
return val;
}
public static double getAssetValue(Preferences prefs, PriceDB pdb, Collection<Asset> flatAssets) {
double val = 0;
for (Asset a : flatAssets) {
if (a.getQuantity() > 0) {
val += MarketCalculator.calculatePrice(Action.SELL, a.getItem().getTypeId(), pdb, prefs) * a.getQuantity();
}
}
return val;
}
public static double getSellOrderValue(Collection<MarketOrder> sellOrders) {
double val = 0;
for (MarketOrder a : sellOrders) {
val += a.getMarketOrder().getPrice() * a.getMarketOrder().getVolRemaining();
}
return val;
}
public static double getBuyOrderEscrow(Collection<MarketOrder> buyOrders) {
double val = 0;
for (MarketOrder a : buyOrders) {
val += a.getMarketOrder().getEscrow();
}
return val;
}
}